package com.tree.backend.entity.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 * 党员基本信息表，记录党员的个人信息和工作情况
 * </p>
 *
 * @author tree
 * @since 2025-10-15
 */
@Getter
@Setter
@ToString
@TableName("party_member")
public class PartyMember implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 党员唯一标识
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 党员编号
     */
    private String memberCode;

    /**
     * 党员姓名
     */
    private String memberName;

    /**
     * 性别：1-男，2-女
     */
    private Byte gender;

    /**
     * 出生日期
     */
    private LocalDate birthDate;

    /**
     * 入党日期
     */
    private LocalDate joinPartyDate;

    /**
     * 身份证号
     */
    private String idCard;

    /**
     * 学历：1-大专以下，2-大专，3-本科，4-硕士，5-博士
     */
    private Byte education;

    /**
     * 职务
     */
    private String position;

    /**
     * 职称
     */
    private String technicalTitle;

    /**
     * 工作部门
     */
    private String workDepartment;

    /**
     * 所属党组织编码
     */
    private String orgCode;

    /**
     * 工龄
     */
    private Integer workYears;

    /**
     * 党内职务
     */
    private String partyDuty;

    /**
     * 工作业绩评分
     */
    private BigDecimal workAchievementScore;

    /**
     * 获得荣誉次数
     */
    private Integer honorCount;

    /**
     * 是否关键岗位：1-是，0-否
     */
    private Byte isKeyPosition;

    /**
     * 状态：1-在岗，2-离职，3-退休
     */
    private Byte status;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
}
